package com.vote.utils;

import com.vote.domain.VoteComment;
import com.vote.domain.VoteNotice;
import com.vote.domain.VoteOption;
import com.vote.domain.VoteQuestion;
import com.vote.domain.VoteQuestionnaire;
import com.vote.domain.VoteUser;
import com.vote.model.Comment;
import com.vote.model.Notice;
import com.vote.model.Option;
import com.vote.model.Question;
import com.vote.model.Questionnaire;
import com.vote.model.User;


public class ModelTransform {
    public static User domain2model(VoteUser vu){
        User user = new User();
        user.setUserId(vu.getUserId());
        user.setUserEmail(vu.getUserEmail());
        user.setUserName(vu.getUserName());
        user.setUserPassword(vu.getUserPassword());
        user.setUserStatus(vu.getUserStatus());
        return user;
    }
    public static VoteUser model2domain(User user){
        VoteUser vu = new VoteUser();
        vu.setUserId(user.getUserId());
        vu.setUserName(user.getUserName());
        vu.setUserPassword(user.getUserPassword());
        vu.setUserStatus(user.getUserStatus());
        vu.setUserEmail(user.getUserEmail());
        return vu;
    }
    public static Questionnaire domain2model(VoteQuestionnaire vq){
        Questionnaire questionnaire = new Questionnaire();
        questionnaire.setOwnerId(vq.getUserId());
        questionnaire.setQuestionnaireCount(vq.getQuestionnaireCount());
        questionnaire.setQuestionnaireDescription(vq.getQuestionnaireDescription());
        questionnaire.setQuestionnaireGroup(vq.getQuestionnaireGroup());
        questionnaire.setQuestionnaireId(vq.getQuestionnaireId());
        questionnaire.setQuestionnaireName(vq.getQuestionnaireName());
        questionnaire.setQuestionnaireStatus(vq.getQuestionnaireStatus());
        questionnaire.setQuestionnaireType(vq.getQuestionnaireType());
        questionnaire.setQuestionnaireTime(vq.getQuestionnaireTime());
        return questionnaire;
    }
    public static VoteQuestionnaire model2domain(Questionnaire questionnaire){
        VoteQuestionnaire vq = new VoteQuestionnaire();
        vq.setUserId(questionnaire.getOwnerId());
        vq.setQuestionnaireCount(questionnaire.getQuestionnaireCount());
        vq.setQuestionnaireDescription(questionnaire.getQuestionnaireDescription());
        vq.setQuestionnaireGroup(questionnaire.getQuestionnaireGroup());
        vq.setQuestionnaireId(questionnaire.getQuestionnaireId());
        vq.setQuestionnaireName(questionnaire.getQuestionnaireName());
        vq.setQuestionnaireStatus(questionnaire.getQuestionnaireStatus());
        vq.setQuestionnaireType(questionnaire.getQuestionnaireType());
        vq.setQuestionnaireTime(questionnaire.getQuestionnaireTime());
        return vq;
    }
    public static Question domain2model(VoteQuestion vq){
        Question question = new Question();
        question.setQuestionCount(vq.getQuestionCount());
        question.setQuestionId(vq.getQuestionId());
        question.setQuestionnaireId(vq.getQuestionnaireId());
        question.setQuestionTitle(vq.getQuestionTitle());
        question.setQuestionType(vq.getQuestionType());
        return question;
    }
    public static VoteQuestion model2domain(Question question){
        VoteQuestion vq = new VoteQuestion();
        vq.setQuestionCount(question.getQuestionCount());
        vq.setQuestionId(question.getQuestionId());
        vq.setQuestionnaireId(question.getQuestionnaireId());
        vq.setQuestionTitle(question.getQuestionTitle());
        vq.setQuestionType(question.getQuestionType());
        return vq;
    }
    public static Option domain2mode(VoteOption vo){
        Option option = new Option();
        option.setOptionCount(vo.getOptionCount());
        option.setOptionId(vo.getOptionId());
        option.setOptionText(vo.getOptionText());
        option.setQuestionId(vo.getQuestionId());
        return option;
    }
    public static VoteOption model2domain(Option option){
        VoteOption vo = new VoteOption();
        vo.setOptionCount(option.getOptionCount());
        vo.setOptionId(option.getOptionId());
        vo.setOptionText(option.getOptionText());
        vo.setQuestionId(option.getQuestionId());
        return vo;
    }
    public static Comment domain2mode(VoteComment vc){
        Comment comment = new Comment();
        comment.setCommentId(vc.getCommentId());
        comment.setCommentText(vc.getCommentText());
        comment.setCommentTime(vc.getCommentTime());
        comment.setFromUserId(vc.getFromUserId());
        comment.setQuestionnaireId(vc.getQuestionnaireId());
        comment.setToUserId(vc.getToUserId());
        return comment;
    }
    public static VoteComment model2domain(Comment comment){
        VoteComment vc = new VoteComment();
        vc.setCommentId(comment.getCommentId());
        vc.setCommentText(comment.getCommentText());
        vc.setCommentTime(comment.getCommentTime());
        vc.setFromUserId(comment.getFromUserId());
        vc.setQuestionnaireId(comment.getQuestionnaireId());
        vc.setToUserId(comment.getToUserId());
        return vc;
    }
    public static Notice domain2mode(VoteNotice vn){
        Notice notice = new Notice();
        notice.setFromUserId(vn.getFromUserId());
        notice.setNoticeId(vn.getNoticeId());
        notice.setNoticeText(vn.getNoticeText());
        notice.setNoticeTime(vn.getNoticeTime());
        notice.setNoticeType(vn.getNoticeType());
        notice.setQuestionnaireId(vn.getQuestionnaireId());
        notice.setUserId(vn.getUserId());
        return notice;
    }
    public static VoteNotice model2domain(Notice notice){
        VoteNotice vn = new VoteNotice();
        vn.setFromUserId(notice.getFromUserId());
        vn.setNoticeId(notice.getNoticeId());
        vn.setNoticeText(notice.getNoticeText());
        vn.setNoticeTime(notice.getNoticeTime());
        vn.setNoticeType(notice.getNoticeType());
        vn.setQuestionnaireId(notice.getQuestionnaireId());
        vn.setUserId(notice.getUserId());
        return vn;
    }
}
